5 int n
,CASO
,T
[100],mem
[55][55][55][40],INF
;
7 int dp(int a
, int b
, int c
, int voy
)
13 return max(a
,max(b
,c
));
15 if(mem
[a
][b
][c
][voy
]!=INF
)
16 return mem
[a
][b
][c
][voy
];
18 int na
,nb
,nc
,mimin
,s
=1<<30;
22 mimin
=min(na
,min(nb
,nc
));
23 s
<?=dp(na
-mimin
,nb
-mimin
,nc
-mimin
,voy
+1);
27 mimin
=min(na
,min(nb
,nc
));
28 s
<?=dp(na
-mimin
,nb
-mimin
,nc
-mimin
,voy
+1);
32 mimin
=min(na
,min(nb
,nc
));
33 s
<?=dp(na
-mimin
,nb
-mimin
,nc
-mimin
,voy
+1);
35 return mem
[a
][b
][c
][voy
]=s
;
42 for(int i
=1;i
<=CASO
;i
++)
49 memset(mem
,-1,sizeof(mem
));
52 printf("Case %d: %d\n", i
, dp(0,0,0,0));